package Exercise;

import java.util.*;

public class demo7 {
    public static void main(String[] args) {
        /**   猴子分苹果
         * 问题描述
         * 　　秋天到了，n只猴子采摘了一大堆苹果放到山洞里，约定第二天平分。
         * 这些猴子很崇拜猴王孙悟空，所以都想给他留一些苹果。
         * 第一只猴子悄悄来到山洞，把苹果平均分成n份，把剩下的m个苹果吃了,然后藏起来一份，最后把剩下的苹果重新合在一起。
         * 这些猴子依次悄悄来到山洞，都做同样的操作，恰好每次都剩下了m个苹果。
         * 第二天，这些猴子来到山洞，把剩下的苹果分成n分，巧了，还是剩下了m个。问，原来这些猴子至少采了多少个苹果。
         * 输入格式
         * 　　两个整数，n m
         * 输出格式
         * 　　一个整数，表示原来苹果的数目
         */

        /**思路
         * 假设一共有苹果x个，每只猴子都会吃m个苹果，第一只猴子，一共拿走（藏起来加吃掉的就是（x-m）/n + m）那么，
         * 如果我们给原来的苹果加上（n-1）*m个的话，就能确保每次都被n整除
         * ，比如说，n=5，m=1时，每次会多一个，当我们加了4个之后，猴子拿掉的数量是不变的，
         * 但是此时苹果的数量就可以被5整除了，这样子的话
         * ，就代表加完苹果之后的数量应该要被n的（n+1）次方（n只猴子再加最后一次一起分，所以是n+1）整除。
         *
         */
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        double sum;
        sum = Math.pow(n,(n+1)) - ((n-1)*m);
        System.out.println((int)sum);
    }
}
